package org.example.com.service;

import org.example.com.pojo.ServiceReservation;
import org.example.com.pojo.vo.ServiceReservationVO;

import java.util.List;

/**
 * 服务预约Service接口
 */
public interface ServiceReservationService {
    
    /**
     * 提交服务预约
     * @param serviceReservation 服务预约信息
     * @return 预约ID
     */
    int submit(ServiceReservation serviceReservation);
    
    /**
     * 获取用户服务预约历史
     * @return 服务预约VO列表
     */
    List<ServiceReservationVO> getHistory();
    
    /**
     * 根据状态获取用户预约列表
     * @param status 预约状态
     * @return 服务预约VO列表
     */
    List<ServiceReservationVO> getByStatus(String status);
    
    /**
     * 获取预约详情
     * @param id 预约ID
     * @return 服务预约VO
     */
    ServiceReservationVO getDetail(int id);
    
    /**
     * 更新预约状态
     * @param id 预约ID
     * @param status 新状态
     */
    void updateStatus(int id, String status);
    
    /**
     * 取消预约
     * @param id 预约ID
     */
    void cancel(int id);
    
    /**
     * 删除预约
     * @param id 预约ID
     */
    void delete(int id);
    
    /**
     * 获取所有预约（管理员用）
     * @return 服务预约VO列表
     */
    List<ServiceReservationVO> getAll();
}
